/*
 * Copyright 1993-2012 NVIDIA Corporation.  All rights reserved.
 *
 * NOTICE TO LICENSEE:
 *
 * This source code and/or documentation ("Licensed Deliverables") are
 * subject to NVIDIA intellectual property rights under U.S. and
 * international Copyright laws.
 *
 * These Licensed Deliverables contained herein is PROPRIETARY and
 * CONFIDENTIAL to NVIDIA and is being provided under the terms and
 * conditions of a form of NVIDIA software license agreement by and
 * between NVIDIA and Licensee ("License Agreement") or electronically
 * accepted by Licensee.  Notwithstanding any terms or conditions to
 * the contrary in the License Agreement, reproduction or disclosure
 * of the Licensed Deliverables to any third party without the express
 * written consent of NVIDIA is prohibited.
 *
 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
 * LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE
 * SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE.  IT IS
 * PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND.
 * NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED
 * DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY,
 * NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE.
 * NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE
 * LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY
 * SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY
 * DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
 * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
 * OF THESE LICENSED DELIVERABLES.
 *
 * U.S. Government End Users.  These Licensed Deliverables are a
 * "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT
 * 1995), consisting of "commercial computer software" and "commercial
 * computer software documentation" as such terms are used in 48
 * C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government
 * only as a commercial end item.  Consistent with 48 C.F.R.12.212 and
 * 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all
 * U.S. Government End Users acquire the Licensed Deliverables with
 * only those rights set forth herein.
 *
 * Any use of the Licensed Deliverables in individual and commercial
 * software must include, in the user documentation and internal
 * comments to the code, the above Disclaimer and U.S. Government End
 * Users Notice.
 */

#if !defined(CURAND_MRG32K3A_MATRICES_H_)
#define CURAND_MRG32K3A_MATRICES_H_

    /* base matrices */

    double M1[3][3] = {{        0.,       1.,       0.},
                       {        0.,       0.,       1.},
                       {  -810728., 1403580.,       0.}};

    double M2[3][3] = {{        0.,       1.,       0.},
                       {        0.,       0.,       1.},
                       { -1370589.,       0.,  527612. }};


    /* Base matrices to power 2 to the power n, n the first array index, from 0..63 */

    double mrg32k3aM1[64][3][3] = {
        {
            {               0.,               1.,               0. },
            {               0.,               0.,               1. },
            {      4294156359.,         1403580.,               0. }
        },
        {
            {               0.,               0.,               1. },
            {      4294156359.,         1403580.,               0. },
            {               0.,      4294156359.,         1403580. }
        },
        {
            {               0.,      4294156359.,         1403580. },
            {       244671815.,      2941890554.,      4294156359. },
            {       149925673.,       489343630.,      2941890554. }
        },
        {
            {      1527363550.,      2758233149.,      1831234280. },
            {      4072640363.,       939574583.,      2758233149. },
            {      2064391165.,      3228066636.,       939574583. }
        },
        {
            {       736416029.,      2961816100.,       342112271. },
            {       387300998.,      1062452522.,      2961816100. },
            {      2955879160.,       340793741.,      1062452522. }
        },
        {
            {      1243502014.,      2218748291.,      1709215645. },
            {      2019641772.,      3847560959.,      2218748291. },
            {      3866010231.,      2305448679.,      3847560959. }
        },
        {
            {      3241775219.,      3453352062.,      3721871040. },
            {      4062454730.,         3015754.,      3453352062. },
            {       919711945.,       613405362.,         3015754. }
        },
        {
            {      1955221006.,      1414472808.,      1746037714. },
            {      3653507277.,      1644962013.,      1414472808. },
            {      3501544776.,      2336229602.,      1644962013. }
        },
        {
            {      1170096663.,        49135452.,      3441537107. },
            {      1857945175.,      1649398389.,        49135452. },
            {       333002869.,      3109147376.,      1649398389. }
        },
        {
            {      2299034194.,      2297111910.,       862649200. },
            {      1399961132.,       996706937.,      2297111910. },
            {      3439056503.,      1481993076.,       996706937. }
        },
        {
            {      4146310528.,       458782589.,      1007330283. },
            {      4241015765.,      3979619964.,       458782589. },
            {       553886495.,      2186897562.,      3979619964. }
        },
        {
            {      3630027893.,      2130448350.,       292773857. },
            {      1392525159.,      1299285967.,      2130448350. },
            {      2589171163.,      1217405758.,      1299285967. }
        },
        {
            {       892409263.,      1999175811.,      2979225418. },
            {      1996163538.,      2148702503.,      1999175811. },
            {      3922720782.,       103819730.,      2148702503. }
        },
        {
            {      1586003016.,      2114210471.,      3240775579. },
            {      2777288607.,      1400478398.,      2114210471. },
            {      3018215420.,       535326008.,      1400478398. }
        },
        {
            {      2188531273.,      1783231160.,      3576659343. },
            {      1908318389.,       379210133.,      1783231160. },
            {       554369329.,       250053591.,       379210133. }
        },
        {
            {      4022841636.,      3951951872.,      2143424240. },
            {      1046219306.,      1591992468.,      3951951872. },
            {      1510277444.,       381333958.,      1591992468. }
        },
        {
            {      2256493727.,      3715182130.,       642697923. },
            {      3615342722.,      3975008370.,      3715182130. },
            {      2405650329.,       754337639.,      3975008370. }
        },
        {
            {      1286664224.,       627406673.,       963516608. },
            {      1541344588.,       460768826.,       627406673. },
            {      1089892553.,      2717717970.,       460768826. }
        },
        {
            {      2956342842.,      3471097641.,      2353092905. },
            {      2996150472.,       420480221.,      3471097641. },
            {      2221681883.,       372736411.,       420480221. }
        },
        {
            {       420492906.,       153526651.,      3499730988. },
            {      2662640502.,      3278195133.,       153526651. },
            {      4086436419.,      2510762118.,      3278195133. }
        },
        {
            {      3310184147.,      2228376089.,       823220763. },
            {      3992771814.,      1693168425.,      2228376089. },
            {      2295790366.,      1401872772.,      1693168425. }
        },
        {
            {      2529428830.,      1497104068.,      4253248635. },
            {      3746310018.,       630867741.,      1497104068. },
            {       627043435.,       721725795.,       630867741. }
        },
        {
            {      2571072593.,      3039669025.,      1591031831. },
            {       526054481.,       661344445.,      3039669025. },
            {      4246010312.,       735391270.,       661344445. }
        },
        {
            {      1847312821.,      4042890210.,      4241772463. },
            {       606605705.,      2644799309.,      4042890210. },
            {      2658402822.,      1342278931.,      2644799309. }
        },
        {
            {      2409846784.,      1096138313.,      1416249993. },
            {      1501878241.,       138013862.,      1096138313. },
            {      1617749306.,      1975136163.,       138013862. }
        },
        {
            {       599453422.,        73950522.,      2965395603. },
            {        55354701.,      3855242202.,        73950522. },
            {      3981734504.,      3354399019.,      3855242202. }
        },
        {
            {      4271076381.,       813410089.,      3461955319. },
            {      1044920137.,      3029005516.,       813410089. },
            {      3501837362.,      3321539504.,      3029005516. }
        },
        {
            {      3058183515.,       941408572.,      1783998098. },
            {      1546486080.,      4116985007.,       941408572. },
            {      2247500745.,      1460625377.,      4116985007. }
        },
        {
            {      4216782514.,      3352801941.,      2315095646. },
            {       639029973.,        94451952.,      3352801941. },
            {      1242898773.,      3964593332.,        94451952. }
        },
        {
            {      2264905138.,      1926285644.,      1108147171. },
            {      2390706911.,       385258225.,      1926285644. },
            {      3569882325.,      3728744670.,       385258225. }
        },
        {
            {       270679073.,      1065683096.,      2992662885. },
            {      4196917281.,      2886425156.,      1065683096. },
            {       749134119.,      1849148167.,      2886425156. }
        },
        {
            {        35689930.,      1378151623.,       951629713. },
            {       673810920.,       948843427.,      1378151623. },
            {      3808868984.,       927013635.,       948843427. }
        },
        {
            {      1891490872.,      1130489594.,      3734864133. },
            {      1457450350.,      3362920032.,      1130489594. },
            {       638998846.,      1401175590.,      3362920032. }
        },
        {
            {      2254459023.,      2384691454.,      1730098031. },
            {      2844861718.,      1807491073.,      2384691454. },
            {       351423668.,      1570264155.,      1807491073. }
        },
        {
            {      3047429268.,      4245359555.,      2449575498. },
            {      1797081212.,      1237196477.,      4245359555. },
            {       143400628.,      3663731096.,      1237196477. }
        },
        {
            {      3313321106.,      4263819658.,      1047529624. },
            {      3719941673.,      3155049403.,      4263819658. },
            {      1981313839.,      4281524426.,      3155049403. }
        },
        {
            {      2005252417.,      3263186729.,      1535805957. },
            {      2951515865.,      1729281525.,      3263186729. },
            {      1141249417.,      2268963059.,      1729281525. }
        },
        {
            {      2367065164.,        83908466.,      4294308508. },
            {      1352516724.,      1416676049.,        83908466. },
            {      1040867745.,      1304732377.,      1416676049. }
        },
        {
            {      3214147257.,      1434230503.,      2944821434. },
            {      2753040912.,      4041536918.,      1434230503. },
            {      1317260239.,       338830578.,      4041536918. }
        },
        {
            {       300628476.,      2054743463.,      1499597869. },
            {      1762244284.,      1422043015.,      2054743463. },
            {      3581125669.,      1207561803.,      1422043015. }
        },
        {
            {      4171745404.,      4064983592.,      1934508265. },
            {      3049723261.,      1744636487.,      4064983592. },
            {       947753516.,      3952135907.,      1744636487. }
        },
        {
            {      1625369148.,      3577024659.,      2778677259. },
            {      1729967818.,      1049600974.,      3577024659. },
            {      2089137344.,      1569794605.,      1049600974. }
        },
        {
            {      1373068765.,      3958611830.,       569117280. },
            {       410042396.,      3551255470.,      3958611830. },
            {       869476379.,      1680625376.,      3551255470. }
        },
        {
            {      2108618602.,      2543645250.,       913717833. },
            {      2111984988.,      1012482542.,      2543645250. },
            {      2545745615.,      3141042890.,      1012482542. }
        },
        {
            {      1157293598.,       584852249.,      2272893205. },
            {      1631801979.,      3013855247.,       584852249. },
            {      3977310441.,        82049263.,      3013855247. }
        },
        {
            {      3580234334.,      3137526662.,      2403875621. },
            {      3580869206.,      3670086228.,      3137526662. },
            {       656744553.,      1764904195.,      3670086228. }
        },
        {
            {      2792496861.,      3634185196.,      3887031679. },
            {      3601823850.,      3464838365.,      3634185196. },
            {      3136165138.,      2842987937.,      3464838365. }
        },
        {
            {      1362557480.,      3230022138.,      4278720212. },
            {      3427386258.,      3848976950.,      3230022138. },
            {      2109817045.,      2441486578.,      3848976950. }
        },
        {
            {      1198519135.,      2007945401.,         3868481. },
            {      3335076429.,      2082683147.,      2007945401. },
            {      2341088247.,       888193479.,      2082683147. }
        },
        {
            {      3473925387.,      3193380570.,       565138859. },
            {       307060547.,       782210925.,      3193380570. },
            {       167617770.,      2180014252.,       782210925. }
        },
        {
            {      3811588895.,      3303532086.,      2766583698. },
            {       908630605.,      2665400165.,      3303532086. },
            {      2499994113.,      3316180851.,      2665400165. }
        },
        {
            {      4288926968.,      3033075037.,      1505732852. },
            {      1531633406.,       645804125.,      3033075037. },
            {      2942690261.,      2205365640.,       645804125. }
        },
        {
            {      3976196483.,      3651411522.,      1652430357. },
            {      1690405883.,      1294990760.,      3651411522. },
            {       209339647.,      3088484327.,      1294990760. }
        },
        {
            {      3171589548.,      2291131070.,      2093793287. },
            {      2997812074.,      4093879780.,      2291131070. },
            {      3255666800.,       858124816.,      4093879780. }
        },
        {
            {      4113016361.,      2999667479.,      3995043314. },
            {      1333973326.,      4007774239.,      2999667479. },
            {      3322921863.,      4278103786.,      4007774239. }
        },
        {
            {       925786347.,      2109676036.,      1879981040. },
            {      1701566570.,      1489702270.,      2109676036. },
            {      2719807628.,       158549605.,      1489702270. }
        },
        {
            {      2255405265.,      3460246357.,       218033453. },
            {      2135115875.,       359516994.,      3460246357. },
            {      3568862459.,      3114762683.,       359516994. }
        },
        {
            {       773148471.,      4117539411.,      3073622315. },
            {      3807175775.,       186466108.,      4117539411. },
            {      2842197411.,       651334129.,       186466108. }
        },
        {
            {       615242951.,      1475251263.,      3586439101. },
            {      1693917167.,      3058812486.,      1475251263. },
            {       568701600.,      1164226398.,      3058812486. }
        },
        {
            {      1632636204.,        15370275.,      2061555515. },
            {      4187505695.,      1741164221.,        15370275. },
            {      2882176274.,      3978412194.,      1741164221. }
        },
        {
            {      3446066703.,       344820524.,        74213775. },
            {      1008543583.,      2579620192.,       344820524. },
            {      3753911358.,      1538453821.,      2579620192. }
        },
        {
            {      3600859892.,      1269921024.,      4069458760. },
            {      2050939727.,      2222725697.,      1269921024. },
            {      3208347646.,       690898125.,      2222725697. }
        },
        {
            {       599407451.,      2806239788.,      1742216102. },
            {       975123999.,       764869161.,      2806239788. },
            {      2729710367.,      1845257036.,       764869161. }
        },
        {
            {       967330218.,      3464884028.,      3444447102. },
            {       580449578.,      1343714307.,      3464884028. },
            {      1775329096.,      4027221761.,      1343714307. }
        }
    };

    double mrg32k3aM2[64][3][3] = {
        {
            {               0.,               1.,               0. },
            {               0.,               0.,               1. },
            {      4293573854.,               0.,          527612. }
        },
        {
            {               0.,               0.,               1. },
            {      4293573854.,               0.,          527612. },
            {      2706407399.,      4293573854.,      3497978192. }
        },
        {
            {      2706407399.,      4293573854.,      3497978192. },
            {      1431525864.,      2706407399.,      3281754271. },
            {        97673890.,      1431525864.,      1673476130. }
        },
        {
            {      3405842137.,      2680076935.,       893509979. },
            {      4035147174.,      3405842137.,      3280220074. },
            {      2623373296.,      4035147174.,       361718588. }
        },
        {
            {       818368950.,      3790774567.,      3542344109. },
            {      1817134745.,       818368950.,      3321940838. },
            {      3493477402.,      1817134745.,      2854655037. }
        },
        {
            {       498682467.,      2928649385.,       811441367. },
            {      1777037472.,       498682467.,       479207863. },
            {      3058260025.,      1777037472.,      1528225099. }
        },
        {
            {      3893311647.,      3140922085.,        64039185. },
            {        82107183.,      3893311647.,      2655465224. },
            {      1674879036.,        82107183.,      1089381262. }
        },
        {
            {        28639152.,      3496041927.,      2231910770. },
            {      3174683233.,        28639152.,      2828785870. },
            {      3681140872.,      3174683233.,      3910194649. }
        },
        {
            {      1463826069.,       300842059.,      3313769518. },
            {      1799677538.,      1463826069.,      3174861078. },
            {      1882279394.,      1799677538.,      3509975160. }
        },
        {
            {      2092194020.,       184076987.,      2202401252. },
            {      3103629604.,      2092194020.,      3409560232. },
            {      4257445059.,      3103629604.,      2390202783. }
        },
        {
            {       812917091.,      2574011276.,      4168802395. },
            {       209817750.,       812917091.,      2974870628. },
            {      3238802184.,       209817750.,      3692836406. }
        },
        {
            {       477309738.,      3314523413.,      3442242150. },
            {      2755731404.,       477309738.,      2782713347. },
            {      1606221490.,      2755731404.,      1033463096. }
        },
        {
            {      2155469603.,      3326516116.,      3843369786. },
            {       288604458.,      2155469603.,       571673571. },
            {      1501677614.,       288604458.,      2928213494. }
        },
        {
            {      2082469029.,       749754403.,      3963963316. },
            {      2764859700.,      2082469029.,      3576428059. },
            {      2840894706.,      2764859700.,      1782279859. }
        },
        {
            {      3760163766.,      1041986082.,      1799196192. },
            {      1022129134.,      3760163766.,      1332558840. },
            {       276873446.,      1022129134.,      3979423632. }
        },
        {
            {      1021313167.,      1312544548.,      1716381787. },
            {      3037868518.,      1021313167.,       199085085. },
            {      2582787611.,      3037868518.,      3539882179. }
        },
        {
            {      2569413030.,      1631336015.,      2594942403. },
            {      1030618503.,      2569413030.,      3467650326. },
            {      1998739584.,      1030618503.,      3174552073. }
        },
        {
            {      2334639309.,      3114094203.,       601680947. },
            {      2110199318.,      2334639309.,       678342865. },
            {      1649523168.,      2110199318.,      2154948056. }
        },
        {
            {       563657176.,       191330473.,      1641595774. },
            {       780563537.,       563657176.,      3029522338. },
            {      2037330914.,       780563537.,      2084602709. }
        },
        {
            {      3414769923.,      1968799026.,      2238126504. },
            {       832866376.,      3414769923.,      3754780168. },
            {      2165145850.,       832866376.,      1594768331. }
        },
        {
            {      1646861218.,      2317984620.,      2301581548. },
            {      2672536210.,      1646861218.,       359763062. },
            {      2391283983.,      2672536210.,      1885870777. }
        },
        {
            {       841254072.,      3765813448.,      1635365181. },
            {      2013240130.,       841254072.,       605925849. },
            {      3743932305.,      2013240130.,       400681955. }
        },
        {
            {      1930213004.,      2072952279.,      3077694794. },
            {      3579956569.,      1930213004.,      2478539210. },
            {      1960229502.,      3579956569.,      1455652656. }
        },
        {
            {      1097613522.,      1784540933.,      1194440107. },
            {       321747515.,      1097613522.,      1225209584. },
            {        74521379.,       321747515.,      4288531000. }
        },
        {
            {       143812745.,      3254530816.,      3514348856. },
            {       769295000.,       143812745.,      2468210728. },
            {      1927161272.,       769295000.,       522705580. }
        },
        {
            {      2692035063.,      2596905012.,      1643240704. },
            {      1103432342.,      2692035063.,      1446182108. },
            {      4161111774.,      1103432342.,      3076435551. }
        },
        {
            {      2375319030.,      1391532370.,      3742334018. },
            {      1202100604.,      2375319030.,      4098434768. },
            {      2327872488.,      1202100604.,      1471526950. }
        },
        {
            {      4269164791.,      2795313144.,      2507855960. },
            {      4245372460.,      4269164791.,      4094914553. },
            {      3873219634.,      4245372460.,      1473695507. }
        },
        {
            {       513890845.,      1208902926.,      2870530442. },
            {      1984873167.,       513890845.,      1257532340. },
            {      1212627640.,      1984873167.,      2354363842. }
        },
        {
            {      1848364568.,      1552116673.,      3496528455. },
            {      4160778291.,      1848364568.,       141769900. },
            {      3611019106.,      4160778291.,       596424080. }
        },
        {
            {       364070020.,      3520039729.,       837362349. },
            {      2544671570.,       364070020.,      2188646679. },
            {       163978331.,      2544671570.,       672947816. }
        },
        {
            {      1192700714.,      3968150021.,       298357363. },
            {       635565666.,      1192700714.,      2589432341. },
            {      2548654227.,       635565666.,      3531570992. }
        },
        {
            {      2709640529.,       676525399.,       875361870. },
            {      1315499519.,      2709640529.,      3842690720. },
            {      3300994644.,      1315499519.,      2446760804. }
        },
        {
            {      2742149264.,      1410604392.,      3032350755. },
            {      3774935330.,      2742149264.,       597633965. },
            {      4085935803.,      3774935330.,      3952463556. }
        },
        {
            {      3878579563.,       845297523.,      1721916511. },
            {      2077922420.,      3878579563.,      3651360351. },
            {      2177255734.,      2077922420.,      3791239282. }
        },
        {
            {      1570315355.,      4252790045.,      3522351060. },
            {      2324624266.,      1570315355.,      3594939336. },
            {      1725087354.,      2324624266.,      1338343327. }
        },
        {
            {      2305761589.,       381933244.,      3663579047. },
            {      1355307047.,      2305761589.,       313617972. },
            {       992174375.,      1355307047.,      3881593435. }
        },
        {
            {      1667857811.,      1564715297.,      2263851601. },
            {      3791771273.,      1667857811.,      4196134923. },
            {      3347975047.,      3791771273.,       615040705. }
        },
        {
            {      4093947334.,      3454015638.,      2815567716. },
            {      4261953004.,      4093947334.,      3973733876. },
            {      2979573134.,      4261953004.,      3757047667. }
        },
        {
            {       250120061.,       570149551.,      1513430926. },
            {      3178644752.,       250120061.,      1701869032. },
            {      4172515680.,      3178644752.,      4213855850. }
        },
        {
            {      4158106802.,      3062358456.,      1815738463. },
            {      1379176112.,      4158106802.,      3926509890. },
            {      2842564878.,      1379176112.,      2852219546. }
        },
        {
            {       931848746.,       256263523.,      2633569246. },
            {      3284646837.,       931848746.,      2567084715. },
            {       415258465.,      3284646837.,      2017565947. }
        },
        {
            {      1648005210.,      1032291296.,      3987397422. },
            {      1831496020.,      1648005210.,      2829448427. },
            {      1821082272.,      1831496020.,      2917140265. }
        },
        {
            {      4161327077.,       489964129.,      3870847744. },
            {      1669447863.,      4161327077.,      4292947198. },
            {      1522417114.,      1669447863.,      2652286672. }
        },
        {
            {      1270934555.,      3136631324.,       505612043. },
            {      2981474723.,      1270934555.,      2528619024. },
            {       625182639.,      2981474723.,      1008985039. }
        },
        {
            {       280996820.,       143706137.,      3013099060. },
            {      1797675893.,       280996820.,      3743985508. },
            {      1123794455.,      1797675893.,      2460119169. }
        },
        {
            {       919218027.,      4154920441.,      1125672685. },
            {      3933041881.,       919218027.,       474242849. },
            {       564891116.,      3933041881.,      2263904321. }
        },
        {
            {      2920112852.,      1965329198.,      1177141043. },
            {      2135250851.,      2920112852.,       969184056. },
            {       296035385.,      2135250851.,      4267827987. }
        },
        {
            {      1481142942.,      4120754772.,      1088557292. },
            {       265491023.,      1481142942.,      2860005744. },
            {       301796252.,       265491023.,      1935975979. }
        },
        {
            {      2111859033.,      2813610100.,      1001476468. },
            {        73849832.,      2111859033.,      3980799998. },
            {      3330206241.,        73849832.,      1933943506. }
        },
        {
            {      1781286360.,      3661231931.,      3509383709. },
            {      2753158871.,      1781286360.,      3119883109. },
            {      3576525143.,      2753158871.,       551079002. }
        },
        {
            {      1185024844.,       587779104.,      1004942725. },
            {      3763632860.,      1185024844.,       947424568. },
            {      3811666068.,      3763632860.,      2352253462. }
        },
        {
            {      1310227170.,       218138208.,      3172947233. },
            {       766129426.,      1310227170.,      1808643264. },
            {      2226659371.,       766129426.,      3853798112. }
        },
        {
            {      2230902378.,      4243560874.,      2491962392. },
            {      3836629116.,      2230902378.,      3637515403. },
            {      2846140932.,      3836629116.,      3083355464. }
        },
        {
            {       999448569.,      1464488480.,      3344426626. },
            {       946166795.,       999448569.,       340856814. },
            {      3686999436.,       946166795.,      3231079441. }
        },
        {
            {      1226155368.,      3477563770.,       550006884. },
            {      2378667355.,      1226155368.,      1493409040. },
            {       260364836.,      2378667355.,      4133888397. }
        },
        {
            {      1277901832.,       310796286.,      2818511068. },
            {      3088910653.,      1277901832.,      3303406025. },
            {      2507911914.,      3088910653.,      3712928074. }
        },
        {
            {       481918378.,       339570348.,      1728801469. },
            {      1623163429.,       481918378.,      2209094694. },
            {      3146982514.,      1623163429.,       508445538. }
        },
        {
            {      3138921230.,      2381863183.,      1992357430. },
            {      1024510915.,      3138921230.,      2122851650. },
            {      1453455184.,      1024510915.,       941946604. }
        },
        {
            {      2465372719.,      1391015357.,      3328905025. },
            {      1821933605.,      2465372719.,      1343489680. },
            {      3648970313.,      1821933605.,      1816599716. }
        },
        {
            {       118634664.,      3358712512.,      2492792220. },
            {       348833376.,       118634664.,      2495544591. },
            {      3235582254.,       348833376.,      4043157504. }
        },
        {
            {      2303067090.,      3371139074.,      1967771133. },
            {       598630070.,      2303067090.,      1819012637. },
            {      2049250561.,       598630070.,      4093044926. }
        },
        {
            {      3035321857.,      3971176093.,       226779704. },
            {      3361614254.,      3035321857.,      2807125404. },
            {       326640887.,      3361614254.,      3147308542. }
        },
        {
            {      1774298149.,      4179629947.,      3145006948. },
            {      1688753503.,      1774298149.,        94869516. },
            {      2327946901.,      1688753503.,      2786835219. }
        }
    };

    /*Base matrices to power (2 to the power 76) to power 2 to power n + 1, n the first array index, from 0..63*/

    double mrg32k3aM1SubSeq[56][3][3] = {
        {
            {        82758667.,      1871391091.,      4127413238. },
            {      3672831523.,        69195019.,      1871391091. },
            {      3672091415.,      3528743235.,        69195019. }
        },
        {
            {      3361372532.,      2329303404.,        99651939. },
            {      2008671965.,      2931758910.,      2329303404. },
            {      1113529483.,      2374097189.,      2931758910. }
        },
        {
            {      1831590873.,      1588259595.,      1314332382. },
            {      2385989343.,      2508077280.,      1588259595. },
            {      1787615788.,       661437137.,      2508077280. }
        },
        {
            {      2326052247.,      4183591379.,      4049009082. },
            {      2604529491.,      1453913233.,      4183591379. },
            {      2311925423.,      1805360390.,      1453913233. }
        },
        {
            {      3956367490.,       604461629.,      1257432102. },
            {       794711716.,      1155867175.,       604461629. },
            {      1777070788.,       429445904.,      1155867175. }
        },
        {
            {      1686241617.,      1257046062.,      1427609439. },
            {       490376081.,       387798431.,      1257046062. },
            {       235551485.,      1312672615.,       387798431. }
        },
        {
            {      2362447880.,      3445363024.,      3160262066. },
            {      2426867845.,      4194339866.,      3445363024. },
            {      1046144413.,      4177893681.,      4194339866. }
        },
        {
            {      4251175413.,      3559576374.,      3107663662. },
            {       697539134.,      1909472435.,      3559576374. },
            {       280754246.,       375835695.,      1909472435. }
        },
        {
            {      1099512970.,       712404985.,      1571467521. },
            {       546519870.,      1135109300.,       712404985. },
            {      3325312332.,      2352874613.,      1135109300. }
        },
        {
            {      1945425936.,      1653045514.,       381988982. },
            {      3733376326.,       414410025.,      1653045514. },
            {      1181583679.,      1185848176.,       414410025. }
        },
        {
            {      2526336124.,      3019211015.,      4215964965. },
            {      2683163472.,      4188191530.,      3019211015. },
            {      2964651598.,       293801056.,      4188191530. }
        },
        {
            {      1444052678.,      2253324417.,        39719589. },
            {      1880267534.,      2391992038.,      2253324417. },
            {       987740265.,      3691889508.,      2391992038. }
        },
        {
            {       166599066.,      2335494420.,      1232261118. },
            {      2227597731.,      2570600780.,      2335494420. },
            {      2700034538.,      3460843234.,      2570600780. }
        },
        {
            {      2511338360.,      1188954576.,      1251401239. },
            {      2511664974.,       292276982.,      1188954576. },
            {       697844082.,      3093661552.,       292276982. }
        },
        {
            {      3624650744.,        51993077.,      3540268009. },
            {      3252828938.,      3710319575.,        51993077. },
            {      2858628849.,      3910069381.,      3710319575. }
        },
        {
            {       655966702.,       754002362.,      1646581402. },
            {      1958331075.,       475572423.,       754002362. },
            {      3248619000.,      3228514800.,       475572423. }
        },
        {
            {      2760311307.,      4166372813.,       741596417. },
            {      2282679206.,      3090782630.,      4166372813. },
            {      3242468721.,      1628442374.,      3090782630. }
        },
        {
            {      4265279407.,      3532111852.,      1754687396. },
            {       500404765.,      2603727025.,      3532111852. },
            {      1428367254.,      3149485478.,      2603727025. }
        },
        {
            {      2873769531.,      2081104178.,       596284397. },
            {      4153800443.,      1261269623.,      2081104178. },
            {      3967600061.,      1830023157.,      1261269623. }
        },
        {
            {       278611533.,      2229285304.,      3443204327. },
            {      3110641420.,        77498444.,      2229285304. },
            {      3904070810.,      1070507239.,        77498444. }
        },
        {
            {       544639534.,       568528663.,      2177189807. },
            {      2475829068.,       121482268.,       568528663. },
            {       876978915.,      3116647617.,       121482268. }
        },
        {
            {      1547862823.,      2404658587.,      4191448009. },
            {      2158188804.,      2976916793.,      2404658587. },
            {       168571747.,      1691884706.,      2976916793. }
        },
        {
            {      3208213311.,      4212638780.,      3235157352. },
            {       671148556.,      2951207765.,      4212638780. },
            {      2075145516.,      2395485231.,      2951207765. }
        },
        {
            {      4080517315.,      2133433101.,      4043998180. },
            {      2044221845.,       867670560.,      2133433101. },
            {       834432416.,      3613001199.,       867670560. }
        },
        {
            {      4102885735.,      1319434267.,      2678775073. },
            {       740092580.,       607380970.,      1319434267. },
            {      2198271844.,      2610193258.,       607380970. }
        },
        {
            {      1165218048.,      1317690360.,      1189150958. },
            {       399240205.,      2507168618.,      1317690360. },
            {      2988334517.,      2687593413.,      2507168618. }
        },
        {
            {      1028861702.,      4082006648.,       338232527. },
            {      1888486946.,      1842080991.,      4082006648. },
            {      3903826366.,      3109935091.,      1842080991. }
        },
        {
            {       614134826.,      2261996505.,      2888080641. },
            {       710199359.,      2773979788.,      2261996505. },
            {      1144301620.,      2554371815.,      2773979788. }
        },
        {
            {      4056173823.,      1285620078.,       357420018. },
            {      2423072612.,      2309408315.,      1285620078. },
            {      1533175115.,      2760088020.,      2309408315. }
        },
        {
            {      4264130267.,       815015434.,      3142242173. },
            {       180649975.,      2500813569.,       815015434. },
            {      3378723563.,       829683767.,      2500813569. }
        },
        {
            {      4174387531.,      1030729435.,      2812778314. },
            {      1752988797.,      4044178729.,      1030729435. },
            {       467969301.,       554748104.,      4044178729. }
        },
        {
            {      1348429235.,      2928743274.,      3776082629. },
            {      3607529209.,      3069812185.,      2928743274. },
            {      2542432347.,      3208181168.,      3069812185. }
        },
        {
            {      4064845753.,       668285756.,      3816217625. },
            {      3713143233.,      1380634204.,       668285756. },
            {      3533700508.,      1192551435.,      1380634204. }
        },
        {
            {      1515684518.,      1706771705.,       728123349. },
            {      3174850469.,      2057456462.,      1706771705. },
            {      3410402985.,      2897339640.,      2057456462. }
        },
        {
            {      3082272717.,       531091457.,      1390161328. },
            {      3895139973.,      2171402857.,       531091457. },
            {      4030688141.,      3049703400.,      2171402857. }
        },
        {
            {      1241147206.,      3193892819.,      1244284192. },
            {        65180262.,      4065669017.,      3193892819. },
            {      1484817937.,      3661081858.,      4065669017. }
        },
        {
            {      1438760812.,      3491341751.,      3414470157. },
            {      2805337292.,       272266053.,      3491341751. },
            {       824109230.,      3202556526.,       272266053. }
        },
        {
            {       135412706.,      3627115412.,      2345042216. },
            {      1565169824.,      2166856449.,      3627115412. },
            {      1026946745.,      3467845248.,      2166856449. }
        },
        {
            {      1889419951.,      3256876154.,      1240505488. },
            {      1254783743.,       989966800.,      3256876154. },
            {      1995297400.,      3692472918.,       989966800. }
        },
        {
            {      3206226875.,       285700890.,       496017472. },
            {      2515316194.,      2129675196.,       285700890. },
            {      1863853990.,      2673457552.,      2129675196. }
        },
        {
            {      4163770641.,       255160418.,       772100749. },
            {      1987092456.,      3237660221.,       255160418. },
            {      1394381051.,      4216039401.,      3237660221. }
        },
        {
            {      2133915627.,      2713747584.,       627765421. },
            {      2300605925.,        35690583.,      2713747584. },
            {      2918902946.,      2638220304.,        35690583. }
        },
        {
            {      2587549655.,       998684270.,      4292130625. },
            {      1791772791.,      2820705344.,       998684270. },
            {       124590158.,      3831143549.,      2820705344. }
        },
        {
            {       978482299.,      3200877282.,       497605289. },
            {      3717741518.,      3737164414.,      3200877282. },
            {      4046686626.,       861393946.,      3737164414. }
        },
        {
            {      2665561897.,       300934584.,      3179822945. },
            {       893043137.,      2031413512.,       300934584. },
            {      3806926970.,      2413249929.,      2031413512. }
        },
        {
            {      1417581911.,      3071835354.,      2575196237. },
            {      4101127251.,      1375339216.,      3071835354. },
            {       847617977.,      3632503316.,      1375339216. }
        },
        {
            {      2747488994.,      3296604805.,       898095468. },
            {      1742777145.,       219265369.,      3296604805. },
            {       823714885.,       667779292.,       219265369. }
        },
        {
            {      2640209692.,      3040506537.,      3626115220. },
            {       161827078.,       852668118.,      3040506537. },
            {      3856381322.,      3360242076.,       852668118. }
        },
        {
            {      3734246393.,      4151553160.,      4177051283. },
            {       266522866.,      1731798531.,      4151553160. },
            {       632196679.,      3864297722.,      1731798531. }
        },
        {
            {      1694175127.,      1087914338.,      2384195794. },
            {      2764925057.,       505782858.,      1087914338. },
            {      3235634082.,       807915248.,       505782858. }
        },
        {
            {      2402749950.,      2353776151.,        75909174. },
            {       890570951.,      1752665661.,      2353776151. },
            {      3120241607.,      3862435696.,      1752665661. }
        }
    };

    double mrg32k3aM2SubSeq[56][3][3] = {
        {
            {      1511326704.,      3759209742.,      1610795712. },
            {      4292754251.,      1511326704.,      3889917532. },
            {      3859662829.,      4292754251.,      3708466080. }
        },
        {
            {       972103006.,       964807713.,       878035866. },
            {      4248550197.,       972103006.,      1926628839. },
            {      1448629089.,      4248550197.,      3196114006. }
        },
        {
            {      3497384788.,      3174249442.,      3182508868. },
            {      3864816447.,      3497384788.,      3038399593. },
            {      2546884738.,      3864816447.,      2980208068. }
        },
        {
            {      1776335558.,      1189944887.,      4095757548. },
            {      3813600746.,      1776335558.,       789475914. },
            {      4119698302.,      3813600746.,      2145357457. }
        },
        {
            {      4022832294.,      4130146837.,      1942923647. },
            {      1675130777.,      4022832294.,       916677004. },
            {      4089786548.,      1675130777.,       116540512. }
        },
        {
            {       165639584.,      1205513289.,      2037453462. },
            {      1444587280.,       165639584.,       161923120. },
            {      2617085459.,      1444587280.,      2006913311. }
        },
        {
            {      3458099202.,      3062421748.,      4052486999. },
            {      1064270720.,      3458099202.,       230768332. },
            {      4056228301.,      1064270720.,      2219267779. }
        },
        {
            {       296275263.,      3452455838.,      2081462173. },
            {      1789143993.,       296275263.,      3463234943. },
            {      2097389984.,      1789143993.,      3447191459. }
        },
        {
            {      2828288883.,      3866690251.,       410553827. },
            {      1587005542.,      2828288883.,      1469478670. },
            {      2766486018.,      1587005542.,      2627363449. }
        },
        {
            {      3288027530.,       412403981.,      2458742268. },
            {      4267121909.,      3288027530.,       138566505. },
            {       420803572.,      4267121909.,      4094554844. }
        },
        {
            {      3844599430.,      2430152838.,      3283485436. },
            {      2486244684.,      3844599430.,      4252427633. },
            {      3560842909.,      2486244684.,      3960267499. }
        },
        {
            {        67933059.,      1294996291.,      2657888382. },
            {       513233413.,        67933059.,      1379805031. },
            {        44564058.,       513233413.,        86971645. }
        },
        {
            {      2732588524.,      1866530072.,       818237694. },
            {      2540507736.,      2732588524.,      3257104212. },
            {      1164400003.,      2540507736.,      1124501551. }
        },
        {
            {      4199239222.,      3155848463.,      2121388468. },
            {      1135554501.,      4199239222.,      2056492193. },
            {      3251740389.,      1135554501.,      2343537248. }
        },
        {
            {       550710036.,       500329021.,      1075236085. },
            {       356444753.,       550710036.,      1634965500. },
            {        58733535.,       356444753.,      1261552815. }
        },
        {
            {       708689546.,       419139045.,      2012018174. },
            {       706488081.,       708689546.,      1113760995. },
            {       585555005.,       706488081.,        76092226. }
        },
        {
            {      1293182265.,      3168473803.,       366230236. },
            {      3319068849.,      1293182265.,      1085259665. },
            {      1675229290.,      3319068849.,      3912300371. }
        },
        {
            {      3186089068.,      4188864734.,      1211781402. },
            {       756122322.,      3186089068.,       578262892. },
            {      2518961174.,       756122322.,      1658665581. }
        },
        {
            {      1347291439.,      2050427676.,       736113023. },
            {      4102191254.,      1347291439.,       878627148. },
            {      1293500383.,      4102191254.,       745646810. }
        },
        {
            {      4196897331.,      3436564969.,      1900167098. },
            {      3108887846.,      4196897331.,      2697923227. },
            {      1405263476.,      3108887846.,       314631094. }
        },
        {
            {       958383622.,      3694638688.,      1150087061. },
            {      3770009830.,       958383622.,       793326651. },
            {       533700213.,      3770009830.,      1513734026. }
        },
        {
            {      4119603367.,      3479396923.,      3534176399. },
            {      3765397477.,      4119603367.,      1458031003. },
            {      3380901602.,      3765397477.,      2684083587. }
        },
        {
            {       980937351.,      2094378936.,       448446028. },
            {      1421333909.,       980937351.,      3405683645. },
            {       323724368.,      1421333909.,       338680738. }
        },
        {
            {      2942968846.,      4293637338.,      3549906544. },
            {       527851489.,      2942968846.,      3852871282. },
            {      4209198933.,       527851489.,      1091268872. }
        },
        {
            {      1975983015.,      2092556693.,       611187071. },
            {      3982652344.,      1975983015.,      3001736262. },
            {      2055073597.,      3982652344.,      1875181995. }
        },
        {
            {      2970221269.,       880904779.,      2447465272. },
            {      2888742196.,      2970221269.,      3521651749. },
            {      3019977656.,      2888742196.,      2712717326. }
        },
        {
            {       419134859.,      2976059897.,       747864206. },
            {      4101695717.,       419134859.,      4264593116. },
            {      2657991148.,      4101695717.,      2542621682. }
        },
        {
            {      4043135299.,      1612983166.,      1149778656. },
            {      1267010518.,      4043135299.,      3496325546. },
            {      3094232897.,      1267010518.,      2949176293. }
        },
        {
            {      3949395794.,      1774568686.,      2123036003. },
            {      2182983404.,      3949395794.,      2355671350. },
            {      2820933455.,      2182983404.,       513963325. }
        },
        {
            {      3046911698.,      2576744453.,      2492729814. },
            {      4277866093.,      3046911698.,      3146977604. },
            {      2249371766.,      4277866093.,      3622293976. }
        },
        {
            {      1391529818.,       423458502.,      2587125255. },
            {      3536237833.,      1391529818.,       985347517. },
            {       157623850.,      3536237833.,      1015566287. }
        },
        {
            {        48329260.,      2599277669.,       821961664. },
            {       902187690.,        48329260.,      1716556555. },
            {      4019658974.,       902187690.,       950730510. }
        },
        {
            {      1318489562.,      1530977112.,      3713577419. },
            {      4270158447.,      1318489562.,      1654940598. },
            {      2679964938.,      4270158447.,      1337075195. }
        },
        {
            {       770600793.,      3249576224.,      3578552768. },
            {      2710443459.,       770600793.,      2990852339. },
            {      3098163705.,      2710443459.,       522138188. }
        },
        {
            {      2803285489.,      1922250286.,      3164022812. },
            {       477609731.,      2803285489.,      2140252218. },
            {      2252852611.,       477609731.,      3058519788. }
        },
        {
            {       208329741.,      3633562083.,      3548346666. },
            {      3892091460.,       208329741.,       516833304. },
            {      3440632377.,      3892091460.,      1638833719. }
        },
        {
            {      1816075033.,      3570111203.,       959489356. },
            {      3482051486.,      1816075033.,       861657108. },
            {      3119495098.,      3482051486.,      2576849579. }
        },
        {
            {      4240216888.,      2891584407.,      2102314945. },
            {      4064489450.,      4240216888.,      1427441010. },
            {      2441164913.,      4064489450.,      3558527186. }
        },
        {
            {      2918371295.,        65155283.,      3469357011. },
            {      3579773554.,      2918371295.,      3494391959. },
            {      3266584309.,      3579773554.,      3837485479. }
        },
        {
            {      2959420453.,      1365016881.,      4082486022. },
            {       236489012.,      2959420453.,      3802558529. },
            {      2687043642.,       236489012.,      2547086826. }
        },
        {
            {      4185325422.,      2762854843.,      3200044912. },
            {      3664909559.,      4185325422.,      3543921700. },
            {      4240262918.,      3664909559.,      2853212443. }
        },
        {
            {      2618500928.,      4237264351.,      1470046497. },
            {      1893990098.,      2618500928.,      2982567031. },
            {      3017062825.,      1893990098.,      3195556801. }
        },
        {
            {      1868464655.,      3407681142.,      1652841784. },
            {      1678569574.,      1868464655.,      4162480901. },
            {      1477016185.,      1678569574.,      4145063890. }
        },
        {
            {       792188465.,      4251338402.,      2219407026. },
            {      3840340879.,       792188465.,      3493367465. },
            {      2979958414.,      3840340879.,      2338974139. }
        },
        {
            {       478845700.,      2378167062.,       882114621. },
            {      1674533845.,       478845700.,      3572905305. },
            {      3571222880.,      1674533845.,      1242316901. }
        },
        {
            {      2636090868.,      1972761498.,        71690719. },
            {      1228103463.,      2636090868.,      1280685025. },
            {      3741735502.,      1228103463.,       994061750. }
        },
        {
            {      1156725261.,      1100755307.,       221922891. },
            {      2892200461.,      1156725261.,      1505716533. },
            {      2287613563.,      2892200461.,      3689457190. }
        },
        {
            {      1387244644.,      3135090808.,      1243609165. },
            {      1724967466.,      1387244644.,      3296353235. },
            {      1064364031.,      1724967466.,      2107521044. }
        },
        {
            {      2822471992.,      2034317853.,      2071407475. },
            {       170903528.,      2822471992.,      1322162887. },
            {      2524982332.,       170903528.,      2656231333. }
        },
        {
            {      3653936868.,      3893194049.,      2484299328. },
            {      1313746234.,      3653936868.,      1705346273. },
            {      1397638018.,      1313746234.,      4015529545. }
        },
        {
            {      4129760842.,      1671665759.,      1677834656. },
            {      3200005334.,      4129760842.,      3486207172. },
            {      2850728736.,      3200005334.,      3076201597. }
        }
    };

    /*Base matrices to power (2 to the power 127) to power 2 to power n+1, n the first array index, from 0..63*/

    double mrg32k3aM1Seq[64][3][3] = {
        {
            {      2427906178.,      3580155704.,       949770784. },
            {       226153695.,      1230515664.,      3580155704. },
            {      1988835001.,       986791581.,      1230515664. }
        },
        {
            {      1774047142.,      3199155377.,      3106427820. },
            {      1901920839.,      4290900039.,      3199155377. },
            {      4178980191.,       280623348.,      4290900039. }
        },
        {
            {      3567524348.,      1934119675.,      3188270128. },
            {      2997767678.,       826363896.,      1934119675. },
            {       262952343.,       614326610.,       826363896. }
        },
        {
            {      1625613062.,      4288164505.,      2481284279. },
            {      4273461426.,      1177260757.,      4288164505. },
            {       305959988.,      4017252267.,      1177260757. }
        },
        {
            {       337929267.,       333342539.,       418300166. },
            {      2944208672.,       379097734.,       333342539. },
            {      2084056909.,      3625475947.,       379097734. }
        },
        {
            {      1189899255.,      1307754719.,      1214919992. },
            {      3736721708.,      3514751918.,      1307754719. },
            {       732435953.,      2021244538.,      3514751918. }
        },
        {
            {      4089172695.,      1533534334.,       525643282. },
            {      1497577018.,      1335684482.,      1533534334. },
            {      2079007086.,      3977541427.,      1335684482. }
        },
        {
            {      3075256652.,      2762754934.,      3846844247. },
            {      3057872364.,      3274545167.,      2762754934. },
            {      4028573983.,       938934351.,      3274545167. }
        },
        {
            {      2597859300.,      2880151048.,      2523330453. },
            {      1121709186.,       175667448.,      2880151048. },
            {      4182510911.,      1723133625.,       175667448. }
        },
        {
            {       484148868.,      1404283933.,      2982534313. },
            {      3736767353.,      3179865161.,      1404283933. },
            {       391120388.,      3758716888.,      3179865161. }
        },
        {
            {      2138867468.,      1128973399.,      2133702321. },
            {      1613561693.,      3622350766.,      1128973399. },
            {      1500151924.,      3759983985.,      3622350766. }
        },
        {
            {      3027706760.,      3786576552.,      2698781808. },
            {      2810527099.,        90498489.,      3786576552. },
            {      4220122612.,      1855245979.,        90498489. }
        },
        {
            {      3739389517.,      1110440720.,       917457922. },
            {      2163873618.,      3707591763.,      1110440720. },
            {      2667061910.,      2533383962.,      3707591763. }
        },
        {
            {      1545226000.,      1812182123.,      3693349190. },
            {      3422065122.,      3291428549.,      1812182123. },
            {      1193168720.,      2072837757.,      3291428549. }
        },
        {
            {      3230096243.,      2131723358.,      3262178024. },
            {      2882890127.,      4088518247.,      2131723358. },
            {      3991553306.,      1282224087.,      4088518247. }
        },
        {
            {       301207261.,      1722796810.,      3697719854. },
            {      3350228505.,      3410986694.,      1722796810. },
            {      3684514720.,      2846958957.,      3410986694. }
        },
        {
            {      1532963114.,      4236235786.,      3871128158. },
            {      3540401964.,      1285250577.,      4236235786. },
            {      1105070646.,      2764245175.,      1285250577. }
        },
        {
            {       210906218.,      3068599594.,      3034582784. },
            {       340633153.,      4004365908.,      3068599594. },
            {      4238928187.,      2299166464.,      4004365908. }
        },
        {
            {      2274701639.,      3955606166.,      3081246407. },
            {      3199954992.,      3948054919.,      3955606166. },
            {      2399101442.,      3438340286.,      3948054919. }
        },
        {
            {       504137100.,      1182303684.,       201533985. },
            {      4188299661.,      3042453580.,      1182303684. },
            {      2578519273.,      2674782930.,      3042453580. }
        },
        {
            {      1382964588.,      2578452047.,      3140440866. },
            {       261861891.,      1076783073.,      2578452047. },
            {      1634588989.,       164438428.,      1076783073. }
        },
        {
            {      2529186343.,       526867394.,      3102803247. },
            {      2687252475.,      2908898908.,       526867394. },
            {      1213100579.,        86050422.,      2908898908. }
        },
        {
            {      2690118316.,       538108523.,       790337895. },
            {      4193870709.,      1053552056.,       538108523. },
            {      1635227281.,      4002399925.,      1053552056. }
        },
        {
            {      2123712957.,      4205383007.,      1812304090. },
            {      1095349745.,       166243972.,      4205383007. },
            {       428569070.,      2128782357.,       166243972. }
        },
        {
            {      1330151766.,      3569679412.,      4107175982. },
            {      3808641551.,      3621125056.,      3569679412. },
            {      4262164578.,      1927692878.,      3621125056. }
        },
        {
            {      3606295184.,      2442739556.,      3894922338. },
            {      1629626641.,      2729678535.,      2442739556. },
            {      3379124758.,      4279360935.,      2729678535. }
        },
        {
            {      1052092278.,      4249024666.,       919210106. },
            {      3253349463.,      3629539480.,      4249024666. },
            {       852514024.,      4025926501.,      3629539480. }
        },
        {
            {        12394571.,      1252747620.,      2133571953. },
            {      4227339509.,      3197545170.,      1252747620. },
            {      1884529704.,      1976203831.,      3197545170. }
        },
        {
            {      2986331025.,      2671019282.,      2847338542. },
            {      3173738401.,      3542657885.,      2671019282. },
            {       745203060.,      1546667401.,      3542657885. }
        },
        {
            {      2613012997.,      2311336951.,      2911336433. },
            {      1493974713.,        92565032.,      2311336951. },
            {      2786645250.,       257065974.,        92565032. }
        },
        {
            {      3424925004.,      2776053372.,      2204068573. },
            {      3770626858.,      2509257810.,      2776053372. },
            {      2979919489.,      1146336783.,      2509257810. }
        },
        {
            {      1474384834.,       827894421.,       515339473. },
            {      1373055755.,      1949809417.,       827894421. },
            {      3088339524.,      1194193824.,      1949809417. }
        },
        {
            {      1825805135.,      1289872272.,      3700877161. },
            {      3433422861.,      4062509844.,      1289872272. },
            {      3019008744.,      2060641859.,      4062509844. }
        },
        {
            {      3842597153.,      4253338264.,      3424495942. },
            {       698444416.,        60268595.,      4253338264. },
            {      4096010585.,        47309624.,        60268595. }
        },
        {
            {      2662288323.,      2043518992.,      1593435980. },
            {      1330201507.,      3618850300.,      2043518992. },
            {      2538793204.,       271787962.,      3618850300. }
        },
        {
            {       741020448.,       997594656.,      2398808739. },
            {      1160477043.,      1522130854.,       997594656. },
            {      3036916315.,      2847712653.,      1522130854. }
        },
        {
            {      2654964886.,      1889728930.,        53329096. },
            {      2042322941.,      1621136330.,      1889728930. },
            {      1553642730.,       784545882.,      1621136330. }
        },
        {
            {      1715219514.,      2831829177.,       929124824. },
            {       997274536.,       404228189.,      2831829177. },
            {      1386575385.,      4107238699.,       404228189. }
        },
        {
            {      3928131551.,      2912523524.,      1840499723. },
            {      4216003022.,      2970489088.,      2912523524. },
            {      1158689953.,      1425511081.,      2970489088. }
        },
        {
            {      2807004452.,      2510299562.,       271603006. },
            {      2505735035.,      2370490899.,      2510299562. },
            {        10873814.,      2450376936.,      2370490899. }
        },
        {
            {      2000734342.,      1113679064.,      2502160539. },
            {      1475266926.,      2787925323.,      1113679064. },
            {      1475797635.,      3044470744.,      2787925323. }
        },
        {
            {      1457157056.,      1252556678.,      3073232607. },
            {      1926798761.,      3639907189.,      1252556678. },
            {      2067740348.,      2256217204.,      3639907189. }
        },
        {
            {      3740999688.,      1035400458.,      3162437311. },
            {      4126312242.,       686702830.,      1035400458. },
            {      1699805291.,       667792040.,       686702830. }
        },
        {
            {      2422495016.,      3203768688.,      1858240466. },
            {       848719394.,      4092709154.,      3203768688. },
            {       659945473.,      1863075174.,      4092709154. }
        },
        {
            {       246817944.,       871751352.,      2834051003. },
            {      3976202597.,      3721214025.,       871751352. },
            {       783929942.,       745295675.,      3721214025. }
        },
        {
            {      3811740424.,      3603608092.,      2365398362. },
            {      3826150877.,      2906557036.,      3603608092. },
            {      2300510686.,       966815948.,      2906557036. }
        },
        {
            {      2816329160.,        18201123.,      3367710570. },
            {       437309679.,      2220769388.,        18201123. },
            {      1346863388.,       705296543.,      2220769388. }
        },
        {
            {      3310028953.,      1662315499.,       132645114. },
            {      2572908401.,      3105849797.,      1662315499. },
            {      1937586849.,      1735620028.,      3105849797. }
        },
        {
            {       461386353.,      1359675853.,      3599822966. },
            {       106675209.,      2044154050.,      1359675853. },
            {      1787730088.,      1149892630.,      2044154050. }
        },
        {
            {      3303902397.,       345146034.,      1417149696. },
            {      2231869247.,      1116882637.,       345146034. },
            {      1846832385.,        79626976.,      1116882637. }
        },
        {
            {      2765049417.,      3117782790.,      1805260159. },
            {      3796182890.,      1101141726.,      3117782790. },
            {       224270120.,      1004001443.,      1101141726. }
        },
        {
            {        89118668.,      2494198515.,      1356989069. },
            {      2490435731.,       997151755.,      2494198515. },
            {      1175528637.,      3444341166.,       997151755. }
        },
        {
            {      2340639019.,       510225634.,       286119182. },
            {      2045217287.,      1194574818.,       510225634. },
            {      2662281592.,      1728500627.,      1194574818. }
        },
        {
            {       210787847.,      1189120688.,      2848040407. },
            {      1087786165.,      2343328484.,      1189120688. },
            {      3465141330.,      2893041005.,      2343328484. }
        },
        {
            {      3438170226.,      3236285682.,       962036916. },
            {      2873263091.,       215280489.,      3236285682. },
            {       730413847.,      1474823842.,       215280489. }
        },
        {
            {      1566461658.,       133010024.,      2886695328. },
            {      2835827516.,       653809404.,       133010024. },
            {      3082882924.,      3710942807.,       653809404. }
        },
        {
            {      4201558916.,      1263786956.,       326001602. },
            {       762846463.,       621546357.,      1263786956. },
            {      2697142404.,      1156650856.,       621546357. }
        },
        {
            {      2655768102.,      2339029465.,      2430211448. },
            {      2669906627.,       403962847.,      2339029465. },
            {      1483118807.,       639660658.,       403962847. }
        },
        {
            {      3508595200.,      4228486662.,       754946994. },
            {      1913148390.,      3500531602.,      4228486662. },
            {           24637.,      3773159052.,      3500531602. }
        },
        {
            {      4024866227.,      1143874914.,      3205058469. },
            {      2970344133.,      2873927273.,      1143874914. },
            {      2167114735.,      4095476435.,      2873927273. }
        },
        {
            {      1479401095.,      2958366486.,      3027708794. },
            {      2704486034.,      3574053987.,      2958366486. },
            {      3630964515.,      1276667706.,      3574053987. }
        },
        {
            {      2035927380.,      1363628533.,       818363998. },
            {      3023327955.,      3968427114.,      1363628533. },
            {      1284825950.,      2871663372.,      3968427114. }
        },
        {
            {      3827747418.,      3897287251.,      4106993377. },
            {      1527779946.,      3221052941.,      3897287251. },
            {      4178727866.,      4281160673.,      3221052941. }
        },
        {
            {      1174358892.,      2835476193.,       959978619. },
            {       850076464.,      3774782533.,      2835476193. },
            {      3880910680.,      3237990203.,      3774782533. }
        }
    };

    double mrg32k3aM2Seq[64][3][3] = {
        {
            {      1464411153.,       277697599.,      1610723613. },
            {        32183930.,      1464411153.,      1022607788. },
            {      2824425944.,        32183930.,      2093834863. }
        },
        {
            {      3492361727.,      1027004383.,      3167429889. },
            {      3674905362.,      3492361727.,      3572939265. },
            {      4270409313.,      3674905362.,       698814233. }
        },
        {
            {       880482061.,       205175925.,      4070445105. },
            {      2208329119.,       880482061.,      1933248566. },
            {      3741227945.,      2208329119.,      3962062826. }
        },
        {
            {      4184605179.,      1189429800.,       567967482. },
            {       107217966.,      4184605179.,       784865788. },
            {       549462420.,       107217966.,      3134382704. }
        },
        {
            {      2732536445.,      1231107067.,      3374588386. },
            {       409954030.,      2732536445.,      1044831206. },
            {      3398162498.,       409954030.,      3505648581. }
        },
        {
            {      2169560691.,      1076348534.,       637306236. },
            {      3704346564.,      2169560691.,       293694496. },
            {       632453145.,      3704346564.,      1609425246. }
        },
        {
            {       372115891.,      3928812480.,      2830541169. },
            {      3056527841.,       372115891.,      1924239834. },
            {      3044937468.,      3056527841.,       547142630. }
        },
        {
            {      1660852083.,      3635660815.,      1389092450. },
            {      1025573319.,      1660852083.,      3276803366. },
            {      4036331438.,      1025573319.,      4092197741. }
        },
        {
            {      1360732901.,      2887812973.,      4101068693. },
            {        52572783.,      1360732901.,       112458461. },
            {      2636566855.,        52572783.,      1136777988. }
        },
        {
            {      3455696508.,       536919193.,      3978804036. },
            {      3094157668.,      3455696508.,      3821833900. },
            {      2278849016.,      3094157668.,      2531965909. }
        },
        {
            {      2125991744.,       890897326.,      3790557569. },
            {      1433592392.,      2125991744.,      3671109604. },
            {       808215503.,      1433592392.,      2446306581. }
        },
        {
            {      3524411799.,       932865240.,      1838275365. },
            {      1789634890.,      3524411799.,      4130736474. },
            {      2252266098.,      1789634890.,      3048775967. }
        },
        {
            {      1773339925.,       948403862.,      1999624391. },
            {       983864203.,      1773339925.,      3734776305. },
            {       314407045.,       983864203.,      2648614071. }
        },
        {
            {       321802921.,      1099164995.,      2112167358. },
            {      3760936985.,       321802921.,      1003573324. },
            {      3758858458.,      3760936985.,      4014658840. }
        },
        {
            {      2196438580.,       805386227.,      4266375092. },
            {      4124675351.,      2196438580.,      2527961345. },
            {        94452540.,      4124675351.,      2825656399. }
        },
        {
            {        66735368.,      2228005807.,      4186703168. },
            {      2624855312.,        66735368.,      2708679078. },
            {      4098470056.,      2624855312.,      1773862183. }
        },
        {
            {      3072642883.,      2746897053.,      2690305546. },
            {      1105106652.,      3072642883.,      4047666135. },
            {      2862886282.,      1105106652.,      3597347398. }
        },
        {
            {       232906611.,      3873338256.,      4051554873. },
            {      3027413363.,       232906611.,      3159432673. },
            {      3872967050.,      3027413363.,       987156327. }
        },
        {
            {      1160686753.,      3676603152.,      1635979789. },
            {      1447386846.,      1160686753.,      2670438424. },
            {       816212890.,      1447386846.,      4288868534. }
        },
        {
            {      3825238244.,      1445162354.,      2362389441. },
            {      3440193648.,      3825238244.,      3520937545. },
            {      2652790808.,      3440193648.,       405299994. }
        },
        {
            {      1984094858.,       532165989.,      2027397575. },
            {      1455977136.,      1984094858.,      2433255524. },
            {      1039994763.,      1455977136.,      2069333087. }
        },
        {
            {      3680843319.,      2332949611.,      3516795313. },
            {      2033851810.,      3680843319.,      3843367307. },
            {      3686294589.,      2033851810.,      3912995069. }
        },
        {
            {       967423689.,      1724183394.,       635932799. },
            {       641380480.,       967423689.,      2145297779. },
            {      1723000412.,       641380480.,       455633660. }
        },
        {
            {      2130938335.,      1534972306.,      2511584766. },
            {       273828453.,      2130938335.,      3112810093. },
            {      4084843716.,       273828453.,      1399334152. }
        },
        {
            {       168278549.,       541167592.,       190177712. },
            {       403188859.,       168278549.,      2092073970. },
            {        58789558.,       403188859.,      2777887189. }
        },
        {
            {       634843389.,      4082275720.,      2092828966. },
            {       351187677.,       634843389.,      1312056270. },
            {      3347241070.,       351187677.,      2417192332. }
        },
        {
            {       443276110.,      1113643788.,       271102234. },
            {      3083745876.,       443276110.,      3370743767. },
            {      4200577503.,      3083745876.,      3298601960. }
        },
        {
            {      3533393557.,       764977733.,      3400275098. },
            {       144639933.,      3533393557.,      2646475951. },
            {        77963866.,       144639933.,      3794766611. }
        },
        {
            {      4064854722.,      1198665008.,      2872196602. },
            {      3274748603.,      4064854722.,      4164637970. },
            {      4238693771.,      3274748603.,      1981721347. }
        },
        {
            {      2279220396.,      2355957139.,      1417574285. },
            {       885864931.,      2279220396.,      1344421653. },
            {      1895527787.,       885864931.,      3726919367. }
        },
        {
            {      2898100178.,      2427331008.,       348923199. },
            {      3175444953.,      2898100178.,      4290541487. },
            {       246118669.,      3175444953.,      3410622769. }
        },
        {
            {       284442065.,      4064194676.,      2295560707. },
            {      4182706556.,       284442065.,      3696899246. },
            {      1201342255.,      4182706556.,      1145356382. }
        },
        {
            {       656615546.,       442908965.,      3724738272. },
            {      1624967553.,       656615546.,       798014134. },
            {      1157949454.,      1624967553.,       496247378. }
        },
        {
            {       265689579.,       675056541.,      3009083380. },
            {      3820679930.,       265689579.,      2961990151. },
            {       562287964.,      3820679930.,      1853486796. }
        },
        {
            {      1675739167.,      2319843005.,       760605578. },
            {      4161492847.,      1675739167.,       226142150. },
            {      1017447188.,      4161492847.,      3431158427. }
        },
        {
            {      1759873736.,      2334568602.,      2154570180. },
            {      1812793060.,      1759873736.,      2111094408. },
            {      1168460586.,      1812793060.,      2495653141. }
        },
        {
            {       317621194.,       868104288.,       664971082. },
            {      2340275074.,       317621194.,      2168960688. },
            {       725706104.,      2340275074.,      3532023115. }
        },
        {
            {      3926931954.,      2907684453.,       615601328. },
            {      1132340715.,      3926931954.,       676995757. },
            {      1154819290.,      1132340715.,      1662727700. }
        },
        {
            {      3921782078.,      3376494857.,      2969567377. },
            {       475345024.,      3921782078.,      4206379953. },
            {      1795936544.,       475345024.,       934679595. }
        },
        {
            {      3119292228.,       741613041.,      2083352304. },
            {      1047885963.,      3119292228.,      1581078542. },
            {      1065969969.,      1047885963.,       661718928. }
        },
        {
            {      3643472111.,      2870554228.,      3995474529. },
            {      3804264051.,      3643472111.,      1366457944. },
            {      1246805564.,      3804264051.,       993186530. }
        },
        {
            {       796711791.,      3878204845.,      3160293932. },
            {       255632881.,       796711791.,      3778927111. },
            {      3472564181.,       255632881.,       388382377. }
        },
        {
            {      1776984101.,      1742284034.,      3449763933. },
            {      1349354417.,      1776984101.,      1264780832. },
            {       715722511.,      1349354417.,      1213319489. }
        },
        {
            {      4261866865.,      1914382786.,       201872335. },
            {       614207188.,      4261866865.,      1853554849. },
            {      2046042882.,       614207188.,      3193186353. }
        },
        {
            {      2210205512.,      2847073169.,      3324925707. },
            {      1251969297.,      2210205512.,      3491451503. },
            {       470400916.,      1251969297.,      2184392547. }
        },
        {
            {      1523590942.,      2391111113.,        68341529. },
            {       295466806.,      1523590942.,      4143310876. },
            {      3527253079.,       295466806.,      4059123142. }
        },
        {
            {      1406902110.,      3735012720.,      1774518130. },
            {      1814959027.,      1406902110.,      1560544267. },
            {       346472965.,      1814959027.,       964257199. }
        },
        {
            {       855309653.,      4208503105.,      1518467541. },
            {      2025248418.,       855309653.,      4148125749. },
            {      1349947330.,      2025248418.,      1168504873. }
        },
        {
            {      2375338156.,      3629519168.,       409696181. },
            {       252401654.,      2375338156.,      3992097193. },
            {      2793725401.,       252401654.,      1350184085. }
        },
        {
            {       873141039.,      3885583138.,       361604799. },
            {      3554143374.,       873141039.,       894746180. },
            {      1919765327.,      3554143374.,       876210854. }
        },
        {
            {       246368794.,      1703793169.,      2317362874. },
            {      2300930144.,       246368794.,      2560214589. },
            {      2016163623.,      2300930144.,      1504276775. }
        },
        {
            {      1574610921.,      2147546631.,      4103450226. },
            {       107416526.,      1574610921.,      1773803959. },
            {      1402542742.,       107416526.,       550063800. }
        },
        {
            {       363388665.,       592194244.,      1746615522. },
            {      2637234667.,       363388665.,      4031408742. },
            {      2895130475.,      2637234667.,       296510335. }
        },
        {
            {      3997368560.,      3047771871.,      3178383826. },
            {      1160174754.,      3997368560.,      4027094919. },
            {      1234984211.,      1160174754.,      4226264344. }
        },
        {
            {      3303179301.,      4243968063.,      3235964171. },
            {      1776841674.,      3303179301.,      2867287469. },
            {      1500495759.,      1776841674.,      1708226553. }
        },
        {
            {      1482944153.,      3192311574.,       354466071. },
            {      3932773012.,      1482944153.,       389193591. },
            {      3350181058.,      3932773012.,      3398059015. }
        },
        {
            {       640968550.,      3226860971.,       922372912. },
            {      1254989667.,       640968550.,      2383815228. },
            {      2027371896.,      1254989667.,      2925300409. }
        },
        {
            {      2313146046.,      3910187183.,      1377591475. },
            {      1689291784.,      2313146046.,      4255405993. },
            {      1650609719.,      1689291784.,      1897624297. }
        },
        {
            {      3656310954.,       882924050.,      2702189958. },
            {      3185020283.,      3656310954.,      1923190496. },
            {      2449669145.,      3185020283.,      4235849984. }
        },
        {
            {       377232416.,      1498446142.,      4229103619. },
            {      3926377906.,       377232416.,       600268838. },
            {       511317726.,      3926377906.,       216160452. }
        },
        {
            {      1969399344.,      3273966859.,      4220943579. },
            {      3952111894.,      1969399344.,       575096961. },
            {      3815277103.,      3952111894.,       792177412. }
        },
        {
            {      2957238169.,      1410010554.,      1523740068. },
            {      3949237584.,      2957238169.,        74149658. },
            {      2564746147.,      3949237584.,      2557663578. }
        },
        {
            {      3377318569.,      1927835240.,      2556102508. },
            {      3022040116.,      3377318569.,      2549406364. },
            {      2387074241.,      3022040116.,      1477293711. }
        },
        {
            {       257306870.,      1748489735.,       547809226. },
            {      3708493374.,       257306870.,      4183546362. },
            {         4435502.,      3708493374.,      1607696753. }
        }
    };

    curandMRG32k3aPtrs_t mrg32k3aArrays = { (sMRG32k3aSkipUnits_t *)&mrg32k3aM1[0][0][0],
                                            (sMRG32k3aSkipUnits_t *)&mrg32k3aM2[0][0][0],
                                            (sMRG32k3aSkipSubSeq_t *)&mrg32k3aM1SubSeq[0][0][0],
                                            (sMRG32k3aSkipSubSeq_t *)&mrg32k3aM2SubSeq[0][0][0],
                                            (sMRG32k3aSkipSeq_t *)&mrg32k3aM1Seq[0][0][0],
                                            (sMRG32k3aSkipSeq_t *)&mrg32k3aM2Seq[0][0][0] };

#endif /* !defined(CURAND_MRG32K3A_MATRICES_H_) */
